Short:    IXemul 44.0 - various documentation
Author:   various
Uploader: fnf@ninemoons.com
Type:     dev/gcc

This is ixemul.library release 44.0, a shared library that makes it possible
to compile and run most Unix programs under AmigaOS with almost no changes.
IXemul is part of the ADE (Amiga Developer's Environment), a community
effort to produce a complete development environment that is stable,
available in source, and completely self-hosting.  See the ADE readme file
at ftp://ftp.ninemoons.com/pub/ade/README for more details about ADE.

As of version 43.1, IXemul includes Jeff Shepherd's networking code.  If
ixnet.library (included) is installed then ixemul.library will use the
networking functions from the ixnet.library, instead of the default dummy
implementation.  Ixnet.library works with AS225 and with AmiTCP.  It
supports both clients and daemons.  A program that uses networking functions
is completely shielded from the AS225 and AmiTCP differences by
ixnet.library, which will take care of all the details for you. That means
that there is no longer any need to provide two different binaries, one for
AS225 and one for AmiTCP.  Furthermore, it is relatively easy to add support
for other network packages.

The following are the changes made since the 43.1 release:

	Kriton Kyrimis updated ixprefs.
	
	David Zaroski updated ixtrace.
	
	Fixed link count for directories. Thanks to Norbert Pueschel.
	
	umask implemented for for open() and mkdir(). Thanks to Norbert
	Pueschel.
	
	Added muFIBB_SET_GID, which will be implemented in the next
	version of MultiUser. The old way of handling setgid was
	confusing and even potentially dangerous.  Thanks to Norbert
	Pueschel.
	
	Added the translation unix sticky bit -> AmigaDOS h bit. This one
	is more for aestaethical reasons, as the h bit is no longer
	supported in 3.x.  Thanks to Norbert Pueschel.
	
	Added a field 'void *u_user;' near the beginning of the user
	struct which everybody is free to (ab)use. It can be handy to
	store task private data in the user struct, at least, I had to
	use it recently.
	
	Added an ix_amiga.h header, which will contain all amiga specific
	functions and macros in ixemul.library and libc.a, together with
	a description.
	
	Profiling has been enhanced. Ixprefs adds a new profiling
	preference: either take samples only while your program is
	running and the PC is within your program, or take samples while
	your program is running and if the PC is outside your program
	code (e.g. in ixemul or in intuition.library), use the last
	function your program entered before calling ixemul or whatever,
	or always take samples, even if other programs are running.
	Again, the last recorded function gets the hit in those cases.
	
	An array of 100 longs to store the A4 register of shared
	libraries has been added to the user struct. This array can be
	easily increased in future releases, should the need arise. The
	first 20 slots are for your own free use, the other slots should
	be registered. See the file REGISTRY in the ixemul source
	distribution for more details.
	
	Fixed yet another path bug. Running a shell script that's placed
	somewhere in your PATH from 'make' failed, unless the filename of
	the script was absolute.
	
	Added vfork_setup_child to libc.a. This is a wrapper intended to
	make life just a little bit easier for those who need to use the
	vfork2()/vfork_resume() trick. It replaces the old
	'ix_resident()/ix_get_vars2()' pair.
	
	Fixed more problems with the routines that start a shell
	script. This time problems with symbolic links have been fixed.
	
	Fixed problems when parsing a pathname of a shell script,
	preventing the execution of that script.
	
	Replaced the stdio-sources by the NetBSD 44.0 versions, which
	incidentally fixed the broken fgetpos function. This change also
	adds printf() and scanf() support for the 'long long' datatype.
	
	Added support for the O_CASE open() flag: this will open an
	existing file only if the filenames match using a case-sensitive
	comparison.
	
	fstat() didn't compensate the file time for the current timezone
	offset.
	
	Ixemul now supports the 68010 CPU. Thanks to Pascal Eeftinck for
	pointing out that the 68010 uses a 68020-like stackframe.
	
	Build the version.[ch] files in the build directory instead of in
	the source directory.
	
	Fixed fchdir().
	
	Changed the machine name as returned by uname() to "m68k". Thanks
	to Lars Hecking for this.
	
	O_ASYNC I/O is now partially supported: select() will test for
	this situation.
	
	/dev/tty is now translated to console:.
	
	Implemented pseudo-terminals support using the FIFO device.
	
	Many, mostly small, changes to become more NetBSD
	compatible. Where possible, I've replaced the old sources with
	the NetBSD 1.1 sources.
	
	The select() function has been improved: it is now much faster
	and works much better.
	
	Using F_SETFL with fcntl() failed if the file wasn't a regular
	file. It now also works for pipes and sockets.
	
	Requesters that are from ixemul.library or ixnet.library now have
	the name of the library as their title, so that you can see that
	they are from the library, and not from the application. Thanks
	to Udo Schnurpfeil for suggesting this.
	
	The tty database functions unfortunately slipped through and
	weren't included with 43.1. They are back in 44.0.
	
	Implemented mmap() and friends. Of course, any mmap feature that
	actually requires a MMU will return an error. But if mmap() is
	used to load a file into memory, then it works fine.
	
	Applied patch from Kamil Iskra to improve ixemul stack extension
	handling.


The net ixemul library distribution consists of several archives:

  ixemul-bin.lha	Utils for gnu/bin, like ixtrace and ixconfig

  ixemul-sdk.lha	Files needed to build applications that use
			ixemul.library.

  ixemul-doc.lha	Various documentation, such as this file

  ixemul-src.lha	Complete source code for ixemul library

  ixemul-tz.lha		Pieces for doing TZ (timezone) management

  ixemul-CCCF.lha	Specific flavors of the library, where 'CCC'
			is one of 000, 020, 030, or 040, for 68000, 68020,
			68030, and 68040 respectively, and 'F' is either
			'f', 's', or 't' for FPU support or soft floating
			point or a "trace" version (also soft float)
			respectively.

For further information consult the NEWS, INSTALL, README and TODO files in
the documentation archive.

-Fred Fish  (fnf@ninemoons.com)


============================= Archive contents =============================

Original  Packed Ratio    Date     Time    Name
-------- ------- ----- --------- --------  -------------
     332     219 34.0% 13-Aug-96 20:47:26 +BUGS
   17982    6993 61.1% 23-Dec-95 00:02:58 +COPYING
   25265    9285 63.2% 23-Dec-95 00:02:58 +COPYING.LIB
    6475    2759 57.3% 18-Aug-96 02:59:32 +INSTALL
   24418    9029 63.0% 18-Aug-96 03:08:00 +ixprefs.guide
     504     263 47.8% 23-Dec-95 00:03:16 +ixprefs.guide.info
   23696    9869 58.3% 18-Aug-96 02:59:36 +NEWS
   14161    6031 57.4% 18-Aug-96 02:59:38 +README
    2058    1096 46.7% 18-Aug-96 02:59:42 +TODO
-------- ------- ----- --------- --------
  114891   45544 60.3% 10-Sep-96 23:43:52   9 files
